home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 8: LINUX Games
/
Linux Cubed Series 8 - LINUX Games.iso
/
games
/
muds
/
pennmush.000
/
pennmush-1.50-p8-linux.tar
/
pennmush
/
CHANGES-3
< prev
next >
Wrap
Text File
|
1993-01-15
|
17KB
|
299 lines
This is a continuation of the change log for PennMUSH, covering Release
Levels 1.18 and 1.19.
----------------------------------------------------------------------------
February 25, 1992 -- Lydia Leong (lwl@eniac.seas.upenn.edu) Release Level 1.18
mail.c is problematical. It's an older version of Spellbound mail, and has a
nasty tendency to crash the MUSH from time to time. It's generally safe to
use, but if you have a problem with repeated crashes, wipe out the mail
database.
-- New functions
* ALPHAMIN() and ALPHAMAX() -- return the smallest/biggest word,
lexicographically, in a comma-separated list of up to 10 arguments
* DIE() -- "rolls" an n-sided die m times, simulating things like "2d6"
* LATTR() -- returns a list of attributes on an object
* LSEARCH() -- similar to @search, returns a list of dbrefs
* SECURE() -- smashes dangerous characters in a string
* SECS() -- returns number of seconds since midnight Jan. 1, 1970
* SORT() -- lexicographically sorts a comma-separated list of up
to ten arguments, returning a space-separated list of words
* ZONE() -- returns the zone of an object
-- New commands
* brief -- like "examine", but does not display attributes
* @chzone -- change zone of an object
* @chzoneall -- change zone of all objects belonging to a player
* @select -- like @switch, but only executes the actions matching the
first target it finds (like 2.0 @switch/first)
* think -- send a private message to yourself
* use -- use an object, triggering @use/@ouse/@ause
* @zemit: emit to all rooms in a zone
-- New flags
* MYOPIC -- player sees everything like he doesn't own it (no dbref
numbers and flags appear when you look at something)
* TRANSPARENT on rooms -- does "long format" exit names in the room, like:
Obvious exits:
North leads to Joe's room.
East leads to Kitchens.
-- New features
* Uselocks on objects allow only those that pass the @ulock to use
them. This provides for a secure way to get around the problems
with INHERIT, and regular security problems, since @ulocks also
block $commands from unauthorized users.
* @use/@ouse/@ause attributes added, triggered by "use" command.
The old "@use/@does" pair is preserved as "@use-does/@does",
for backward compatibility.
* Zones implemented. Please see the help for details.
Anyone who passes the enter lock of a zone object controls all
objects in that zone - i.e. has the equivalent of wizard privs
in that zone.
In addition to regular command matching, you also match commands
in the zone of your current room, and your person zone. These
are $commands on the master object for the zone. This matching
occurs between regular $command matching and global matching.
* MUCK-style parent rooms implemented as a subset of zones. Parent rooms
are ZMOs which are rooms. Parent room exits and $commands on objects
in the parent room are checked before local zone commands.
* "Events" file, compile-time option, a file like news and help
* Config options DARK_EXITS, TRANSPARENT_EXITS, and TRANSPARENT_ROOMS,
which are building defaults.
* Site lockout has been improved. It now does wildcards, thanks to
T'nor of SouCon MUSH. It is also possible to do registration on sites
as well as lockout.
-- Fixes and other changes
* the usual minor bugfixes
* ELOCK() no longer requires player to control either object being
evaluated by the function.
* @chown and related commands now remove the INHERIT and ROYALTY flags.
* @search (and LSEARCH) now allow class restriction "zone".
* fixed bug which allowed wizards to set objects they didn't own
WIZARD (this should be a god-only priv)
* if an object pages a NOSPOOF player, the object's number appears
before the message, in a fashion similar to NOSPOOF-flagged emits.
* fixed a coredump bug in "give" which was triggered by a wizard "giving"
a player extremely large numbers of negative pennies.
* fixed a typo in game.c in LOG_FAILED_COMMANDS
* startup sequence now prints warning in log if PLAYER_START,
MASTER_ROOM, or GUEST_PLAYER are set to invalid values.
* @config expanded to give more detailed, informative output.
* cleaned up STICKY code and corrected the help text
* core dump bug involving rooms and exits trying to execute $commands
has been fixed (thanks to GlobalMUSH for pointing this problem out).
* "throw" as an alias for "drop" has been removed
* others in the room are now notified when someone takes something
with "<person> takes <object>" (instead of nothing, if no osucc
message was set). The drop message has been changed to
"<person> drops <object>", so the verb tenses are the same.
* say now has a comma (grammar! What a concept!)
* a small bug involving @clone'ing exits in rooms you couldn't link
to has been removed
* you can now link drop-tos in rooms to "home"
* @search now outputs rooms in a format like things (it shows you
the owner of the room)
* NOSPOOF and TERSE are now player flags; the Nospoof/Terseness of an
object is dependent upon its owner's status.
* upped MAX_COMMAND_LEN to 1 K (doubled the maximum, in other words).
BUFFER_LEN is still only 4 K, though. I don't think this should
break anything.
* did little tweaks which should remove almost all the compiler warnings
* some minor bugfixes in bsd.c
* inactivity_check moved to timer.c, where it's done with db fixups
* @destroy's output is more informative now
* you must know a player's password in order to rename him (in the past,
a wizard could use his password instead, and an object owned by
the player didn't need a password at all)
* fixed coredump bug in @clone caused by the function not duplicating
enter or use locks.
* alphabetized flag listings somewhat
* IDESC now does pronoun substitution
* fixed stupid problem in some call to do_move in game.c - initially
forgot to pass a type flag, causing problems on some machines
* quick #ifndef fix to externs.h that should help convince SysV machines
that they like MUSH. Thanks to Delany for this one.
* rewrote NOSPOOF code in do_page so it OUGHT to work on all machines
(certain systems couldn't take the null string at the beginning of
a call to print, in the original version of this)
----------------------------------------------------------------------------
May 5, 1992 -- Lydia Leong (lwl@eniac.seas.upenn.edu) Release level 1.19
-- New flags
* ANSI_DISPLAY - bold-hilites names of attributes, making it easier
to read long object listings.
* AUDIBLE - exits propagate sound to next room. The room must be set
AUDIBLE in order for checking to occur. @prefix is prepended to
message. @filter filters out stuff that matches anything in a
list of comma-separated patterns.
A similar thing is true of objects set AUDIBLE; messages from
within them are propagated to the outside world.
(Re)Setting stuff AUDIBLE causes a "now broadcasting" or
"no longer broadcasting" message to be emitted.
* LISTENER - objects which use ^ patterns must now have this set.
The benefit is some increased speed, and all objects which are
LISTENER are checked for ^ patterns even if they have a @listen.
Setting something LISTENER triggers the "grows ears and can now hear"
message. When an object loses its listen status (not puppet, not
listener, and has no @listen), it "loses its ears and becomes deaf"
* MONITOR - wiz-settable flag, notifies player of connects/disconnects
* STARTUP flag added. Should massively increase efficiency on startup.
Need to define ADD_STARTUP_FLAG when using this for the first time.
-- New functions
* ABS() returns the absolute value of a number.
* BEEP() -- send up to five "alert" bell characters
* EVAL() - gets an attribute from an object and does pronoun subst.
* LOCATE() -- controlled match with respect to a certain object.
* LSTATS() -- returns a breakdown of player's stuff in list form
* PMATCH() - partial name-match, returns dbref number of player
* ROOM() -- returns absolute location of an object.
* SIGN() returns 0, 1, or -1 depending on the sign of a number.
* SPACE() -- prints a certain number of spaces
* STRCAT() concatenates two strings with no space between them.
* UFUN() -- takes a "function name", which is an arbitrary attribute
on an object, and arguments, and plugs it through the functions.
Allows you to define your own functions.
* ZFUN() -- like UFUN, but reads the attribute from the ZMO.
-- New features
* Name lockout -- a file definable in config.h contains a list of
player names which may not be used. Both player creation and
player name changes check this (the ok_player_name function
now calls a new predicate forbidden_name)
* @map command - takes a list and a function, and maps the function
onto the list, returning a list. This is basically a variation
on @dolist.
* @daytime command - turns off @find, @entrances, @search, and LSEARCH()
Useful when running on a machine that you don't want to munch a lot
of CPU time on.
* Enter and exit aliases can now have semi-colon separated lists
* Teleport locks added as a subset of enter locks.
* Wizards that reach IDLE_TIMEOUT and are set UNFINDABLE are automatically
set DARK.
* "@uptime" command, gives system uptime. Wizards only.
* T'nor's improved @halt code added -- allows clearing of a single
object's wait queue. IMMORTAL flag prevents halting of objects.
* Chat system! To add new channels or change existing ones, check
chat.h, look.c, predicates.c, and speech.c (grep for
CHAT_SYSTEM to find the relevant code)
* Maximum login limit, automatically turns logins on and off.
* Global and zone aconnect/disconnects added.
* Immortal objects no longer use up money.
* Royalty no longer uses money, nor is it subject to quota or
BUILDER bit restrictions (i.e.treated like wizards are wrt building)
* Added '@@' comment signal.
* Added new match type, match_controlled_absolute(). This allows players
to match things by number, if they control them. Players can now do
remote look and get on objects that they own (the new match predicate
is in other functions as well, but those two are the major ones).
* Game now tells you the time and place of your last login at connect.
* Hilites using ANSI control characters have been added, for attribute
examines. The AUDIBLE flag is overloaded; it's an unpleasant but
workable kludge.
-- Fixes
* added an extern declaration of match_thing to attrib.c so all
compilers deal with the LATTR code
* fixed move.c's do_drop to handle dropping of objects in a TEMPLE
correctly. Based on Jim Miller's patch (retief@iastate.edu)
I also patched it so everything takes place in a logical order
and that the stuff which ought to be #ifdef'ed, is.
* put in the "rob" code again, as a config option (thanks to Jim
Miller for pointing out that it never got used)
* STICKY flag split into a thing flag and a room flag (running into huge
numbers of flags, and therefore making an attempt to compress the
ones that are only applicable to two or fewer types)
* fixed ^patterns so %N substitution works properly
* fixed bug in did_it involving charges. (Sheesh. This bug's been
around for a _long_ time. Dunno why no one pointed it out before.)
* recoded FLIP function - now calls a generic utility function which
reverses a string, using pointers (much cleaner now).
* parent room checks fixed, thanks to Jim Miller. Another stupid bug.
* only rooms may have a parent room as their zone
* added MUSH restart time to the top of the MUSH log, static variable
start_time added.
* @version now gives the MUSH name and time of last restart in addition
to the code version.
* Behavior of @chzone changed by popular request - any wizard can
@chzone a player now
* Kludges to try to prevent crashes caused by huge lock unparses:
do_lock and unparse_boolexp check for overflowing the buffer length,
kinda sorta. It's still possible to crash the game, but it's highly
improbable. A real fix would require dynamically allocating space.
* Added HP-UX compatibility, thanks to Schlake (craig@minos.nmt.edu)
Also added his other minor fixes, like properly commenting out
trailing text after #endifs, etc.
* Did some minor cleanup using the IS macro instead of a written-out
type and flag check
* You cannot see what an OPAQUE object is carrying even if you own
or control it (this is the way it should have been to begin with)
* Fixed some more inappropriate calls to toupper() - confuses
DECs. Used UPCASE macro instead.
* LINK_OK is now valid for all types (dunno why this was changed
in the 1.15 code, didn't realize it 'til now)
* things that are LINK_OK can now be @triggered even if the
INHERIT check fails. This provides some of the security of
INHERIT but allows you to avoid clumsy workarounds for
objects that only need to @trigger something. The control
checks still apply.
* Rooms-going-away with the floor falling out from under player
messages should hopefully be fixed. The exact origin of this
problem isn't known, but a check in dest_info for NOTHING
should take care of it. It's a bug dating back to at least
PernMUSH 1.06, but it seems to have increased in frequency
with this latest code, for an unknown reason.
* Fix to display page-returns as 12 hours instead of 24 hours.
Can #define MILITARY_TIME
* added macro Mobile(x). This is true if x is type THING or PLAYER.
((Typeof(player) == TYPE_PLAYER) || (Typeof(player) == TYPE_THING))
is now Mobile(player).
((Typeof(player) == TYPE_ROOM) || (Typeof(player) == TYPE_EXIT))
is now !Mobile(x).
* config option PARANOID_NOSPOOF added. If this is defined, nospoof
also shows the object number of the spoofer.
* you can no longer link something to itself.
* added GoodObject(x) macro which checks if x is >= 0 and <= db_top
* fixed bug in do_trigger which caused crashes if exits linked to home
attempted to trigger stuff.
* rewrote raw_broadcast using varargs.
* prevent people from linking homes to GOING objects
* atr_comm_match now automagically returns 0 if the checked object is
HALT, since even if a command were matched, it couldn't execute
it anyway.
* Fixed an #ifdef-#endif problem in bsd.c, thanks to Czakari.
* Changed PMATCH to work exactly like page-matching does. It first checks
the normal player lookup table; if nothing is found, then it calls
the connected player partial lookup. The error messages are now
#-1 NOTHING or #-2 AMBIGUOUS. This is a more useful behavior.
It notifies of the error, and returns the number.
* SUSPECT flag is no longer detectable by non-priv'ed players
* flags are shown if objects are VISUAL or DESTROY_OK, always
* @poor now gives the player a message
* fixed check for TEMPLE room so Verbose objects don't count as
Temples! Bleah! (*sigh* still tracking down all the places
where the IS macro should be used...)
* LOC(), HOME() now always works for royalty. (Oversight)
* @poll changes are logged
* @chzone on players no longer nukes the W, r, and I flags.
* checks on GET() and attribute flags changed -- an attribute
which is flagged AF_DARK is no longer gettable at all
(like the password! Bleah!)
* @chownall and @chzoneall now provide object count.
* the value of a cloned object is now the same as the value of its
template object
* fixed immortal/unfindable problem in do_kill with an IS macro
* @listmotd lists all the motds for royalty. Should have been this way
before, since royalty get the wizmotd at login.
* fixed weird bug that caused players to become owned by God. If someone
tried to call atr_add with thing = 0, the privs were done as GOD
and the owner of the caller became owned by GOD. Why #0 was treated
as a special case baffles me.
* Only objects with the same owner can set each other INHERIT. Helps
plug a zone-related security hole.
* Zone control does not extend to objects set INHERIT.
* Fixed bug in create.c that allowed non-builders to link exits and
seize unlinked ones, even though they were told they couldn't.
* Find now returns the number of objects found
* Newlines and 'alert' bell characters can no longer be in @doings.
-- Some stuff on versions:
* DB header line is +V2 for old format (no changes),
+V258 (256+2) for new locks and zones,
+V514 for that plus chat system,
anything else is +V770 (256*3 + 2)